
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Return an object representing the diffs between two objects. Supports jsonPatch protocol
The 'just-diff' npm package is a lightweight utility for computing the difference between two JavaScript objects. It provides a simple and efficient way to identify changes, additions, and deletions between objects.
Compute Differences
This feature allows you to compute the differences between two objects. The result is an array of changes that describe how to transform the first object into the second.
const diff = require('just-diff');
const obj1 = { a: 1, b: 2 };
const obj2 = { a: 1, b: 3, c: 4 };
const differences = diff(obj1, obj2);
console.log(differences);
The 'deep-diff' package provides similar functionality to 'just-diff' but with more detailed change tracking, including nested objects and arrays. It offers a more comprehensive set of tools for deep comparison.
The 'diff' package is a general-purpose text and object diffing library. It supports a wide range of diffing operations, including line-by-line and word-by-word comparisons, making it more versatile but also more complex than 'just-diff'.
The 'lodash.isequal' function from the Lodash library provides deep equality checks between objects. While it doesn't provide a diff per se, it is useful for determining if two objects are equivalent, which can be a complementary operation to diffing.
Part of a library of zero-dependency npm modules that do just do one thing.
Guilt-free utilities for every occasion.
Return an object representing the difference between two other objects
Pass converter to format as http://jsonpatch.com
import {diff} from 'just-diff';
const obj1 = {a: 4, b: 5};
const obj2 = {a: 3, b: 5};
const obj3 = {a: 4, c: 5};
diff(obj1, obj2);
[
{ "op": "replace", "path": ['a'], "value": 3 }
]
diff(obj2, obj3);
[
{ "op": "remove", "path": ['b'] },
{ "op": "replace", "path": ['a'], "value": 4 }
{ "op": "add", "path": ['c'], "value": 5 }
]
// using converter to generate jsPatch standard paths
import {diff, jsonPatchPathConverter} from 'just-diff'
diff(obj1, obj2, jsonPatchPathConverter);
[
{ "op": "replace", "path": '/a', "value": 3 }
]
diff(obj2, obj3, jsonPatchPathConverter);
[
{ "op": "remove", "path": '/b' },
{ "op": "replace", "path": '/a', "value": 4 }
{ "op": "add", "path": '/c', "value": 5 }
]
// arrays
const obj4 = {a: 4, b: [1, 2, 3]};
const obj5 = {a: 3, b: [1, 2, 4]};
const obj6 = {a: 3, b: [1, 2, 4, 5]};
diff(obj4, obj5);
[
{ "op": "replace", "path": ['a'], "value": 3 }
{ "op": "replace", "path": ['b', 2], "value": 4 }
]
diff(obj5, obj6);
[
{ "op": "add", "path": ['b', 3], "value": 5 }
]
// nested paths
const obj7 = {a: 4, b: {c: 3}};
const obj8 = {a: 4, b: {c: 4}};
const obj9 = {a: 5, b: {d: 4}};
diff(obj7, obj8);
[
{ "op": "replace", "path": ['b', 'c'], "value": 4 }
]
diff(obj8, obj9);
[
{ "op": "replace", "path": ['a'], "value": 5 }
{ "op": "remove", "path": ['b', 'c']}
{ "op": "add", "path": ['b', 'd'], "value": 4 }
]
FAQs
Return an object representing the diffs between two objects. Supports jsonPatch protocol
The npm package just-diff receives a total of 2,215,800 weekly downloads. As such, just-diff popularity was classified as popular.
We found that just-diff demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.